<?php

/**
 * bException
 *
 * Classe fille d'Exception propre à Bottleneck
 *
 * @package bottleneck
 * @subpackage core
 * @author Thomas Lenoel
 * @copyright 2010 Thomas Lenoel
 * @version 0.1
 * @license http://www.gnu.org/licenses/gpl.html GNU General Public License version 3
 */
class bException extends Exception {
    // @codeCoverageIgnoreStart
    public function show() {
        
        print '<p><span style="color:red">ERREUR ['.$this->code.']</span><br />'
                .'<strong>'.$this->file.' : '.$this->line.'</strong>'
                .'<br />'.$this->message
                .'<br /><br /><pre>'.$this->getTraceAsString().'</pre></p>';

        die;
        
    }

    public function cmdShow() {
        
        bICmd::message($this->file.":".$this->line."\n".$this->message."\n\n".$this->getTraceAsString()."\n","ERREUR ".$this->code, 'red' );

    }
    //// @codeCoverageIgnoreEnd
}


/**
 * bError
 *
 * Classe de gestion des erreurs
 *
 * @package bottleneck
 * @subpackage core
 * @author Thomas Lenoel
 * @copyright 2010 Thomas Lenoel
 * @version 0.1
 * @license http://www.gnu.org/licenses/gpl.html GNU General Public License version 3
 */
class bError {

    // Scripts errors  - 000 to 049

    public static function appNotDefined() {
        throw new bException('Le projet n\'a pas été définie.', '000');
    }

    public static function cmdNotExist() {
        throw new bException('La commande que vous avez tapé n\'existe pas.', '001');
    }

    public static function appAlreadyExist() {
        throw new bException('Ce projet existe déjà.', '002');
    }

    public static function cmdExpected() {
        throw new bException('Bottleneck attend une commande', '003');
    }

    public static function moduleNotExists() {
        throw new bException('Ce module n\'existe pas', '004');
    }

    public static function moduleAlreadyExists() {
        throw new bException('Ce module existe déjà.', '005');
    }

    public static function controllerAlreadyExists() {
        throw new bException('Ce contrôleur existe déjà.', '006');
    }

    public static function notEnoughParameters() {
        throw new bException('Des paramètres semblent manquer à votre commande.', '007');
    }


    // Core errors - 050 to 149

    public static function controllerNotExist() {
        throw new bException('Le contrôleur spécifié n\'existe pas.', '050');
    }

    public static function actionNotExist() {
        throw new bException('L\'action spécifiée n\'existe pas.', '051');
    }

}
?>
